'use strict'

const titbit = require('titbit')
const {cookie,session} = require('titbit-toolkit')
const token = require('titbit-token')

let tok = new token({
    expires:30,
    key:'20010614200106142001061420010614',  //必须是32位
    iv:'tianyuxuan010614'  //必须是16位
})

//http://localhost:1235/?say=12345   控制台network--all  查看cookie
//C盘 用户/公用/sess文件里对应的文件
const app = new titbit({
    debug:true
})

//必须先cookie，再session，session是基于cookie的  但二者不一定要一起
app.use(new cookie)
    .use(new session)

//用use添加的函数叫中间件   middleware
//1.在wx2021 里 cmd  ， node serv.js  
//2.访问：localhost:1235/?say=12345     要传参
app.use(async (c,next)=>{
    c.setHeader('x-test-key',`${Math.random()}`)
    await next()
})

app.use(async (c,next)=>{
    if(c.query.say === '12345'){ 
        await next()
    }else{
        c.status(403).send('deny')
    }
},{name:['home'],method:['GET']})
//get的名字在use名字里，且use的method为GET，get才能执行

app.get('/',async c=>{
    c.send('ok')
},{name:'home',group:'home'}) //name:'home'表示给路由起名，group:'home'表示分组，可以为中文    c.name  c.group

app.get('/test',async c=>{
    c.send('test is ok')
})

// app.get('/:x/:y',async c=>{
//     c.setSession('x',c.param.x)
//     c.setSession('y',c.param.y)
//     c.send(c.getSession())
// })

app.get('/token',async c=>{
    let tk = tok.make({
        id:'123',
        user:'node',
        level:12
    })
    c.send(tk)
    
})

app.get('/decrypt/:token',async c=>{
    c.send(tok.verify(c.param.token))
})

app.run(1235)